Jak vytvorit novy TEdit na pozici kurzoru?
Otázka od: JiriKrakora@skh.cz
25. 9. 2002 15:17
Dobry den,
Mam Form1 a na nem onMouseDown event s nasledujicim kodem:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Edit: TEdit;
begin
Edit := TEdit.Create(self);
try
Edit.Visible := True;
Edit.Color := clRed;
Edit.Enabled := True;
Edit.Name := 'TEST';
Edit.BorderStyle := bsSingle;
Edit.Width := 20;
Edit.Height := 5;
Edit.Left := x;
Edit.Top := y;
Edit.Show;
showmessage('Jsem uvnitr a vytvarim Edit');
finally
end;
end;
Predpokladal jsem, ze to bude fungovat, ale nefunguje. Muj TEdit to sice
vytvori (to poznam podle jmena), ale ja ho nevidim. Kdyz jsem pouzil
Edit.Showing tak mi to vratilo False. Zkousel jsem i Edit.BringToFront ,
nebo Edit.ClientToScreen , ale porad se mi ta komponenta nezobrazuje.
Nefunguje to ani kdyz nepouziji try...finally prikaz. Uz nad tim sedim
druhy den a porad nemuzu prijit na pricinu.
Zkouseli jsme to s kolegou v praci na WIN2000 a Delphi 6 i Delphi 7.
Prosim o radu.
Dekuji, Jiri Krakora.
Odpovedá: Lebeda David
25. 9. 2002 18:55
> Predpokladal jsem, ze to bude fungovat, ale nefunguje. Muj TEdit to
> sice vytvori (to poznam podle jmena), ale ja ho nevidim.
Musis nastavit Parent na prvek, na nemz Edit lezi.
Tedy Edit.Parent := Self, jde-li o form.
David Lebeda
Odpovedá: JiriKrakora@skh.cz
25. 9. 2002 15:39
1. "Self" znamena vzdycky Form?
2. Parent je TImage, ale v pripade Edit.Parent := Image1; to hodi chybu
"Incompatible types: 'TWinControl' and 'TImage'" Kdyz vsak pod Image1
podlozim TPanel, tak Edit.Parent := Panel1; uz funguje. Cim to je?
> Predpokladal jsem, ze to bude fungovat, ale nefunguje. Muj TEdit to
> sice vytvori (to poznam podle jmena), ale ja ho nevidim.
Musis nastavit Parent na prvek, na nemz Edit lezi.
Tedy Edit.Parent := Self, jde-li o form.
David Lebeda
Odpovedá: Petr Brant
25. 9. 2002 19:22
Musis nastavit Edit.Parent:= self
RNDr. Petr Brant [brant@dcomm.cz]
D&COMM s.r.o.
Korunovační 6
Praha 7
tel. +420724007234
From: JiriKrakora@skh.cz [mailto:JiriKrakora@skh.cz]
Subject: Jak vytvorit novy TEdit na pozici kurzoru?
Mam Form1 a na nem onMouseDown event s nasledujicim kodem:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Edit: TEdit;
begin
Edit := TEdit.Create(self);
try
Edit.Visible := True;
Edit.Color := clRed;
Edit.Enabled := True;
Edit.Name := 'TEST';
Edit.BorderStyle := bsSingle;
Edit.Width := 20;
Edit.Height := 5;
Edit.Left := x;
Edit.Top := y;
Edit.Show;
showmessage('Jsem uvnitr a vytvarim Edit');
finally
end;
end;
Predpokladal jsem, ze to bude fungovat, ale nefunguje. Muj TEdit to sice
vytvori (to poznam podle jmena), ale ja ho nevidim. Kdyz jsem pouzil
Edit.Showing tak mi to vratilo False. Zkousel jsem i Edit.BringToFront ,
nebo Edit.ClientToScreen , ale porad se mi ta komponenta nezobrazuje.
Nefunguje to ani kdyz nepouziji try...finally prikaz. Uz nad tim sedim druhy
den a porad nemuzu prijit na pricinu.
Odpovedá: Lebeda David
25. 9. 2002 16:54
> 1. "Self" znamena vzdycky Form?
Ne. Self je trida, do niz patri metoda, jiz upravujes. V klasickych pripadech
to
obvykle bude form, ale pokud budes mit v jedne unite vice trid, tak je to vzdy
to
odpovidajici.
> 2. Parent je TImage
Aha, takhle ne, musi to byt komponenta, ktera ma kontejnerovy charakter, tj.
pokud ji
posunes, posunou se i prvky, ktere v ni lezi. Napr. Form, panel apod.
Je treba rozlisovat pojmy Owner a Parent. Owner se stara o uvolneni vsech
vlastnenych komponent, Parent resi vykreslovani.
David Lebeda
Odpovedá: Libor Junek, KSH-Data
25. 9. 2002 19:31
Nemas nastaven parent:
Edit.Parent := Self;
Libor
-----Original Message-----
From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]On
Behalf Of JiriKrakora@skh.cz
Predpokladal jsem, ze to bude fungovat, ale nefunguje. Muj TEdit to sice
vytvori (to poznam podle jmena), ale ja ho nevidim. Kdyz jsem pouzil
Edit.Showing tak mi to vratilo False. Zkousel jsem i Edit.BringToFront ,
nebo Edit.ClientToScreen , ale porad se mi ta komponenta nezobrazuje.
Nefunguje to ani kdyz nepouziji try...finally prikaz. Uz nad tim sedim druhy
den a porad nemuzu prijit na pricinu.
Zkouseli jsme to s kolegou v praci na WIN2000 a Delphi 6 i Delphi 7. Prosim
o radu.
Odpovedá: Jan Sebelík
25. 9. 2002 20:05
> Odesílatel: JiriKrakora@skh.cz
Edit := TEdit.Create(self);
try
// Edit.Name := 'TEST'; tohle spadne napodruhe kvuli duplicitnimu jmenu
// Name se nastavovat nemusi
Edit.BorderStyle := bsSingle;
Edit.Width := 20;
Edit.Height := 5; // tohle asi nepujde
Edit.Left := x;
Edit.Top := y;
Edit.Parent:=self;
// Parent muze byt libovolny kontejner odvozeny od TWinControl, treba TPanel,
...
except
Edit.Free;
end;
Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes.cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 493 792 931 (mobil 776 347735)
=========================================
Predpokladal jsem, ze to bude fungovat, ale nefunguje. Muj TEdit to sice
vytvori (to poznam podle jmena), ale ja ho nevidim. Kdyz jsem pouzil
Edit.Showing tak mi to vratilo False. Zkousel jsem i Edit.BringToFront ,
nebo Edit.ClientToScreen , ale porad se mi ta komponenta nezobrazuje.
Nefunguje to ani kdyz nepouziji try...finally prikaz. Uz nad tim sedim
druhy den a porad nemuzu prijit na pricinu.
Zkouseli jsme to s kolegou v praci na WIN2000 a Delphi 6 i Delphi 7.
Prosim o radu.
Dekuji, Jiri Krakora.
Odpovedá: Pavel ZIDEK
26. 9. 2002 4:07
Chybi ti
Edit.Parent := Form1
----- Pavel ZIDEK -----
Mam Form1 a na nem onMouseDown event s nasledujicim kodem:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Edit: TEdit;
begin
Edit := TEdit.Create(self);
try
Edit.Visible := True;
Edit.Color := clRed;
Edit.Enabled := True;
Edit.Name := 'TEST';
Edit.BorderStyle := bsSingle;
Edit.Width := 20;
Edit.Height := 5;
Edit.Left := x;
Edit.Top := y;
Edit.Show;
showmessage('Jsem uvnitr a vytvarim Edit');
finally
end;
end;
Predpokladal jsem, ze to bude fungovat, ale nefunguje. Muj TEdit to sice
vytvori (to poznam podle jmena), ale ja ho nevidim. Kdyz jsem pouzil
Edit.Showing tak mi to vratilo False. Zkousel jsem i Edit.BringToFront , nebo
Edit.ClientToScreen , ale porad se mi ta komponenta nezobrazuje. Nefunguje to
ani kdyz nepouziji try...finally prikaz. Uz nad tim sedim druhy den a porad
nemuzu prijit na pricinu.
Zkouseli jsme to s kolegou v praci na WIN2000 a Delphi 6 i Delphi 7. Prosim o
radu.
Dekuji, Jiri Krakora.
Odpovedá: Piskac Josef
26. 9. 2002 6:24
On 25 Sep 2002 at 13:12, JiriKrakora@skh.cz wrote:
> Mam Form1 a na nem onMouseDown event s nasledujicim kodem:
>
> procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
> Shift: TShiftState; X, Y: Integer);
> var
> Edit: TEdit;
> begin
> Edit := TEdit.Create(self);
> try
Edit.Parent := Self; // Toto Ti tam chybi, pak se uz objevi.
> Edit.Visible := True;
> Edit.Color := clRed;
> Edit.Enabled := True;
> Edit.Name := 'TEST';
> Edit.BorderStyle := bsSingle;
> Edit.Width := 20;
> Edit.Height := 5;
> Edit.Left := x;
> Edit.Top := y;
> Edit.Show;
> showmessage('Jsem uvnitr a vytvarim Edit');
> finally
>
> end;
> end;
>
Pepa
Odpovedá: Jirí Göth
27. 9. 2002 7:51
Ahoj,
abych prispel se svou troskou do mlyna (pokud jiz to funguje, tak to je asi
zcestna myslenka).
Na tom formu zavolej metodu InsertControl( Edit). Tato metoda by mela vlozit
editacni policko na formular.
Jiri Goth
----- Puvodní zpráva -----
Od: JiriKrakora@skh.cz
Komu: delphi-l@clexpert.cz
Odesláno: 25. zárí 2002 13:12
Predmet: Jak vytvorit novy TEdit na pozici kurzoru?
Dobry den,
Mam Form1 a na nem onMouseDown event s nasledujicim kodem:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Edit: TEdit;
begin
Edit := TEdit.Create(self);
try
Edit.Visible := True;
Edit.Color := clRed;
Edit.Enabled := True;
Edit.Name := 'TEST';
Edit.BorderStyle := bsSingle;
Edit.Width := 20;
Edit.Height := 5;
Edit.Left := x;
Edit.Top := y;
Edit.Show;
showmessage('Jsem uvnitr a vytvarim Edit');
finally
end;
end;
Predpokladal jsem, ze to bude fungovat, ale nefunguje. Muj TEdit to sice
vytvori (to poznam podle jmena), ale ja ho nevidim. Kdyz jsem pouzil
Edit.Showing tak mi to vratilo False. Zkousel jsem i Edit.BringToFront ,
nebo Edit.ClientToScreen , ale porad se mi ta komponenta nezobrazuje.
Nefunguje to ani kdyz nepouziji try...finally prikaz. Uz nad tim sedim druhy
den a porad nemuzu prijit na pricinu.
Zkouseli jsme to s kolegou v praci na WIN2000 a Delphi 6 i Delphi 7. Prosim
o radu.
Dekuji, Jiri Krakora.
Odpovedá: Zdenek Brejsa
27. 9. 2002 8:11
Musis nastavit Edit.Parent := Self nebo nejaky panel, proste musis urcit na
cem se ma ten edit zobrazit
> Mam Form1 a na nem onMouseDown event s nasledujicim kodem:
>
> procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
> Shift: TShiftState; X, Y: Integer);
> var
> Edit: TEdit;
> begin
> Edit := TEdit.Create(self);
> try
> Edit.Visible := True;
> Edit.Color := clRed;
> Edit.Enabled := True;
> Edit.Name := 'TEST';
> Edit.BorderStyle := bsSingle;
> Edit.Width := 20;
> Edit.Height := 5;
> Edit.Left := x;
> Edit.Top := y;
> Edit.Show;
> showmessage('Jsem uvnitr a vytvarim Edit');
> finally
>
> end;
> end;
>
>
> Predpokladal jsem, ze to bude fungovat, ale nefunguje. Muj TEdit to sice
> vytvori (to poznam podle jmena), ale ja ho nevidim.
Odpovedá: Jan Sebelík
27. 9. 2002 12:54
> Odesílatel: Jirí Göth <jiri_goth@gordic.cz>
> Na tom formu zavolej metodu InsertControl( Edit). Tato metoda by mela vlozit
> editacni policko na formular.
Panel.InsertControl(Edit)
je totez jako
Edit.Parent:=Panel
Co je lépe citelne?
Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes.cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 493 792 931 (mobil 776 347735)
=========================================